////////////////////////////////////////////////
// MACHINE GENERATED, PLEASE DONOT MODIFY!    //
////////////////////////////////////////////////

#pragma once

#include "rpc_interface_generated.hh"

class RPCSkeleton : public RPCSkeletonBase {
public:
    static void install();
    static void uninstall();

public:
    RPCSkeleton();
    virtual ~RPCSkeleton();
    virtual void dispose(std::uint64_t RPCID, RPCCallBase* callBase) override;
    virtual void onPathReq(PathID pathID, std::uint64_t RPCID, std::uint64_t UUID,
        const char* data, std::size_t size) override;
    virtual void onPathAck(std::uint64_t RPCID, RPCCallBase* callBase, const char* data, std::size_t size) override;
        virtual void onSiteReq(const kratos::grid::SiteID & , std::uint64_t, std::uint64_t,
        const char *, std::size_t) override {}
    virtual void onSiteAck(std::uint64_t, RPCCallBase*, const char*, std::size_t) override {}
    virtual void onEntityReq(PathID, PathID, std::uint64_t, std::uint64_t, std::uint64_t,
        const char*, std::size_t) override;
    virtual void onEntityAck(std::uint64_t, RPCCallBase*, const char*, std::size_t) override;

	struct Path {
		static std::shared_ptr<SampleProxy> getSample(PathID pathID);
		static std::shared_ptr<Sample1Proxy> getSample1(PathID pathID);
	};
	struct Entity {
		static std::shared_ptr<SampleProxy> getSample(std::uint64_t entityID);
		static std::shared_ptr<Sample1Proxy> getSample1(std::uint64_t entityID);
	};
};
